<template>
    <li>
        <label>
            <input
                type="checkbox"
                :checked="todo.done"
                @change="handleCheck(todo.id)"
            />
            <!-- 以下代码也可以实现，不过不建议（修改了props内容） -->
            <!-- <input type="checkbox" v-model="tood.done" /> -->
            <span>{{ todo.title }}</span>
        </label>
        <button class="btn btn-danger" @click="handleDelete(todo.id)">
            删除
        </button>
    </li>
</template>

<script>
import pubsub from "pubsub-js";
export default {
    name: "TdItem",
    props: ["todo"],
    methods: {
        //勾选or取消勾选
        handleCheck(id) {
            //console.log(id);
            //通知App组件将对应的todo对象的done值取反
            // this.checkTodo(id);
            this.$bus.$emit("checkTodo", id);
        },
        //删除
        handleDelete(id) {
            //console.log(id);
            if (confirm("确定删除吗？")) {
                //确定 进入
                // this.deleteTodo(id);
                // this.$bus.$emit("deleteTodo", id);
                pubsub.publish("deleteTodo", id);
            }
        },
    },
};
</script>

<style scoped>
/*item*/
li {
    list-style: none;
    height: 36px;
    line-height: 36px;
    padding: 0 5px;
    border-bottom: 1px solid #ddd;
}

li label {
    float: left;
    cursor: pointer;
}

li label li input {
    vertical-align: middle;
    margin-right: 6px;
    position: relative;
    top: -1px;
}

li button {
    float: right;
    display: none;
    margin-top: 3px;
}

li:before {
    content: initial;
}

li:last-child {
    border-bottom: none;
}

li:hover {
    background-color: #ddd;
}

li:hover button {
    display: block;
}
</style>